home *** CD-ROM | disk | FTP | other *** search
/ Aminet 22 / Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso / Aminet / dev / amos / termplay.lha / TermPlay.AMOS / TermPlay.amosSourceCode < prev   
AMOS Source Code  |  1997-09-04  |  18KB  |  704 lines

  1. '                      Playing with the Serial Port
  2.  
  3. '                          by Don Chamberlain
  4.  
  5.  
  6.  
  7.    Set Buffer 200
  8.  
  9. 'Set up the resource bank and the resource screen...     
  10.  
  11.    Resource Bank 16
  12.    Resource Screen Open 0,640,200,0
  13.    Screen Display 0,,43,,
  14.    Flash Off : Curs Off : Cls 0 : Paper 0
  15.    Palette $666,$F00,$4A4,$DD0,$C,$370,$900,$CCC
  16.    Dim PHONE$(64),ST$(30),RECORD$(2)
  17.    BLANK$=Chr$(159)
  18.  
  19. 'Load the config file and the phonebook... 
  20.  
  21.    E=Exist("term.config")
  22.    If E=True
  23.       Open In 1,"term.config"
  24.       For S=2 To 12
  25.          Input #1,ST$(S)
  26.       Next S
  27.       Close 1
  28.    Else 
  29.       FCONFIG$=Fsel$("*.config","Term.config","Load a Configuration File")
  30.       Open In 1,FCONFIG$
  31.       For S=2 To 12
  32.          Input #1,ST$(S)
  33.       Next S
  34.       Close 1
  35.    End If 
  36.  
  37.    E=Exist("phonebook.data")
  38.    If E=True
  39.       Open In 1,"phonebook.data"
  40.       For S=0 To 64
  41.          Input #1,PHONE$(S)
  42.       Next S
  43.       Close 1
  44.       F$="Phonebook.data"
  45.    Else 
  46.       F$=Fsel$("*.data","Load a Data File","Must end in .data")
  47.       Open In 1,F$
  48.       For S=0 To 64
  49.          Input #1,PHONE$(S)
  50.       Next S
  51.       Close 1
  52.    End If 
  53.  
  54.    XSEND=0 : XREC=1 : XOPEN=2 : XCLOSE=3
  55.    XSETUP=4 : XREAD=5 : XWRITE=6 : XCUSTOM=7
  56.  
  57.    _STRINGS
  58.    BBS$="by Latenight Software Experiments Ltd."
  59.    INIT_HDR
  60.  
  61.    Global A$,B$,C$,F$,ST$(),BBS$,FCONFIG$,SET$,_FILE$,LHDR$
  62.    Global XSEND,XREC,XOPEN,XCLOSE,XSETUP,XREAD,XWRITE,XCUSTOM
  63.  
  64.    Every 60 Proc DA_TIME : Every On 
  65.  
  66. 'Open the serial port and send a command to check it...
  67.  
  68.    MSP=Val(ST$(2))
  69.     Extension_11_0006 MSP,8,1,8096,250000,$80,0,"serial.device"
  70.     Extension_11_0064 "ATZ"+Chr$(13)
  71.  
  72. ' Open the Main Loop...>   
  73.  
  74. STRT:
  75.    Scroll On 
  76.    Do 
  77.       Gosub DA_MENUS
  78.       RD$= Extension_11_0044 : Print Extension_10_0472(RD$); : RD$=""
  79.       ID$= Extension_11_00DA : Extension_11_0034 ID$ : ID$=""
  80.    Loop 
  81. End 
  82.  
  83. 'Subroutines...  
  84.  
  85. _SAVEIT:
  86.    Dialog Close(1)
  87.    F$=Fsel$("*.data","","Save the PhoneBook")
  88.    If F$="" : Dialog Open 1,A$ : Return : End If 
  89.    Locate ,12 : Centre "Saving a PhoneBook..."
  90.    Open Out 1,F$
  91.    For O=0 To 64
  92.       Print #1,PHONE$(O)
  93.    Next O
  94.    Close 1
  95.    Locate ,12 : Centre "                     "
  96.    Home 
  97.    Dialog Open 1,A$
  98. Return 
  99.  
  100. _LOADIT:
  101.    Dialog Close(1)
  102.    F$=Fsel$("*.data","","Load a PhoneBook")
  103.    If F$="" : Dialog Open 1,A$ : Return : End If 
  104.    Locate ,12 : Centre "Loading a PhoneBook..."
  105.    Open In 1,F$
  106.    For O=0 To 64
  107.       Input #1,PHONE$(O)
  108.    Next O
  109.    Close 1
  110.    Locate ,12 : Centre "                      "
  111.    Home 
  112.    Dialog Open 1,A$
  113. Return 
  114.  
  115. SOORT:
  116.    Dialog Close(1)
  117.    Sort PHONE$(0)
  118.    Dialog Open 1,A$
  119. Return 
  120.  
  121. DELETE:
  122.    NN=Vdialog(1,4)
  123.    Dialog Close(1)
  124.    PHONE$(NN)=BLANK$+Space$(39)
  125.    Dialog Open 1,A$
  126. Return 
  127.  
  128. EDDIT:
  129.    NUM=Vdialog(1,4)
  130.    RECORD$(1)=Left$(Rdialog$(1,4),20)
  131.    RECORD$(2)=Right$(Rdialog$(1,4),20)
  132.    Dialog Close(1)
  133.    Dialog Open 2,C$
  134.    Vdialog$(2,4)=RECORD$(1)
  135.    Vdialog$(2,5)=RECORD$(2)
  136.    X=Dialog Run(2)
  137.    N$=Rdialog$(2,1)
  138.    P$=Rdialog$(2,2)
  139.    Dialog Close(2)
  140.    If Len(N$)<20
  141.       NAME$=N$+Space$(20-Len(N$))
  142.    End If 
  143.    FIRST$=Left$(NAME$,1)
  144.    SECOND$=Right$(NAME$,19)
  145.    THIRD$=Upper$(FIRST$)
  146.    NAME$=THIRD$+SECOND$
  147.    PHON$=P$+Space$(20-Len(P$))
  148.    REC$=NAME$+PHON$
  149.    PHONE$(NUM)=REC$
  150.    Dialog Open 1,A$
  151. Return 
  152.  
  153. ' Dial the phone number... 
  154.  
  155. DIAL:
  156.    M$=Right$(Rdialog$(1,4),20)
  157.    BBS$=Left$(Rdialog$(1,4),20)
  158.    While Right$(BBS$,2)="  "
  159.       BBS$=BBS$-"  "
  160.    Wend 
  161.    If Left$(M$,1)=" " : Goto STRT : End If 
  162.    T$="ATDT "
  163.    T$=T$+M$+Chr$(13)
  164.    Dialog Close 
  165.    Curs On 
  166.     Extension_11_0034 T$
  167.    Do 
  168.       Q= Extension_11_0054 
  169.       If Q>0 : Exit 1 : End If 
  170.    Loop 
  171. Return 
  172.  
  173. PHONEBOOK:
  174.    Dialog Open 1,A$
  175.    Vdialog(1,0)=Array(PHONE$(0))
  176.    Vdialog$(1,3)=F$
  177.    X=Dialog Run(1)
  178.    Do 
  179.       D=Dialog(1)
  180.       If D=5 : Gosub DIAL : Exit 1 : End If 
  181.       If D=6
  182.          Gosub SOORT
  183.          Vdialog(1,0)=Array(PHONE$(0))
  184.          Vdialog$(1,3)=F$
  185.          J=Dialog Run(1)
  186.       End If 
  187.       If D=7
  188.          Gosub DELETE
  189.          Vdialog(1,0)=Array(PHONE$(0))
  190.          Vdialog$(1,3)=F$
  191.          J=Dialog Run(1)
  192.       End If 
  193.       If D=8
  194.          Gosub EDDIT
  195.          Vdialog(1,0)=Array(PHONE$(0))
  196.          Vdialog$(1,3)=F$
  197.          J=Dialog Run(1)
  198.       End If 
  199.       If D=9 Then Dialog Close : Return 
  200.       If D=10
  201.          Gosub _SAVEIT
  202.          Vdialog(1,0)=Array(PHONE$(0))
  203.          Vdialog$(1,3)=F$
  204.          J=Dialog Run(1)
  205.       End If 
  206.       If D=11
  207.          Gosub _LOADIT
  208.          Vdialog(1,0)=Array(PHONE$(0))
  209.          Vdialog$(1,3)=F$
  210.          J=Dialog Run(1)
  211.       End If 
  212.    Loop 
  213.    Goto STRT
  214. Return 
  215.  
  216. CONFIG:
  217.    Dialog Open 2,B$,40,4096
  218.  
  219.    For Q=2 To 12
  220.       Vdialog$(2,Q+11)=ST$(Q)
  221.    Next Q
  222.  
  223.    X=Dialog Run(2)
  224.  
  225.    B1=Rdialog(2,24) : Rem           cancel button  
  226.    B2=Rdialog(2,25) : Rem           load     " 
  227.    B3=Rdialog(2,26) : Rem           save     " 
  228.    B4=Rdialog(2,27) : Rem           use      " 
  229.  
  230.    If B1>0 Then Dialog Close : Goto STRT
  231.  
  232.    For Q=2 To 12
  233.       ST$(Q)=Rdialog$(2,Q+11)
  234.    Next Q
  235.  
  236.    If B2 or B3>0
  237.       Dialog Close 
  238.       Gosub _LOADCONFIG
  239.       Goto CONFIG
  240.    End If 
  241.    Dialog Close 
  242. Return 
  243.  
  244. CANCEL:
  245.     Extension_11_0024 
  246.    T$= Extension_11_00C8("","","",3)
  247.    Dialog Close 
  248.    Edit 
  249. End 
  250.  
  251. DA_MENUS:
  252.    Ink 2,7,
  253.    Menu$(1)=" System  "
  254.    Menu$(1,1)=" Quit   "
  255.    Menu$(2)="Transfer  "
  256.    Menu$(2,1)="Download  "
  257.    Menu$(2,2)="Upload    "
  258.    Menu$(3)="Phone  "
  259.    Menu$(3,1)="Phone Book"
  260.    Menu$(3,2)="Hang Up   "
  261.    Menu$(4)="Terminal"
  262.    Menu$(4,1)="Configuration"
  263.    Menu$(4,2)="Clear Screen "
  264.    On Menu Gosub MENU1,MENU2,MENU3,MENU4
  265.    Menu On : On Menu On 
  266. Return 
  267.  
  268. MENU1:
  269.    If Choice(2)=1
  270.       Goto CANCEL
  271.    End If 
  272. Return 
  273.  
  274. MENU2:
  275.    If Choice(2)=1 : _DOWNLOAD : Every Off : End If 
  276.    If Choice(2)=2 : _UPLOAD : Every Off : End If 
  277.    Menu On : On Menu On 
  278. Return 
  279.  
  280. MENU3:
  281.    If Choice(2)=1 : Gosub PHONEBOOK : End If 
  282.    If Choice(2)=2
  283.        Extension_11_0034 "+++"
  284.       Wait Vbl 
  285.    End If 
  286.    Menu On : On Menu On 
  287. Return 
  288.  
  289. MENU4:
  290.    If Choice(2)=1 : Gosub CONFIG : End If 
  291.    If Choice(2)=2 : Cls 0 : Home : End If 
  292.    Menu On : On Menu On 
  293. Return 
  294.  
  295. _LOADCONFIG:
  296.    FCC$=Fsel$("*.config","","Load a Configuration")
  297.    If FCC$="" : Goto STRT : End If 
  298.    Locate ,12 : Centre "Loading a Configuration..."
  299.    Open In 1,FCC$
  300.    For S=2 To 12
  301.       Input #1,ST$(S)
  302.    Next S
  303.    Close 1
  304.    Locate ,12 : Centre "                          "
  305. Return 
  306.  
  307. _SAVECONFIG:
  308.    FSC$=Fsel$("*.config","","Save the Configuration")
  309.    If FSC$="" : Goto STRT : End If 
  310.    Locate ,12 : Centre "Saving a Configuration..."
  311.    Open Out 1,FSC$
  312.    For S=2 To 12
  313.       Print #1,ST$(S)
  314.    Next S
  315.    Close 1
  316.    Locate ,12 : Centre "                         "
  317. Return 
  318.  
  319. Procedure INIT_HDR
  320.    Screen Open 1,640,8,8,Hires : Curs Off : Cls 6
  321.    Screen Display 1,,243,, : Screen 1 : Pen 2 : Paper 6
  322.    Locate 2,0 : Print "TermPlay";
  323.    Locate 2,0 : Centre BBS$
  324.    Screen 0
  325. End Proc
  326. Procedure DA_TIME
  327.  
  328.    BT$= Extension_10_02C4 : TL$=Mid$(BT$,1,2)
  329.    BT$= Extension_10_02C4 : TM$=Mid$(BT$,3,2)
  330.    BT$= Extension_10_02C4 : TR$=Mid$(BT$,5,2)
  331.  
  332.    AP$="AM"
  333.    TMP=Val(TL$)
  334.    If TMP=0 : TL$="12" : AP$="AM" : End If 
  335.    If TMP>12 : TMP=TMP-12 : TL$=Str$(TMP) : AP$="PM" : End If 
  336.  
  337.    TIME$=TL$+":"+TM$+" "+AP$
  338.  
  339.    Screen 1 : Paper 6
  340.    Locate 0,0 : Print Chr$(26)
  341.    Pen 5 : Locate 2,0 : Print "TermPlay";
  342.    Pen 2 : Locate 0,0 : Centre BBS$
  343.    Pen 5 : Locate 70,0 : Print TIME$;
  344.    Screen 0 : Every On 
  345.  
  346. End Proc
  347. Procedure XPR_PRINT
  348.    Print LHDR$
  349.    Print L1$-"%s"-"%ld"
  350.    Print L3$-"%s"-"%ld"
  351.    Print L4$-"%s"-"%ld"
  352.    Print L5$-"%s"-"%ld"
  353.    Print L6$-"%s"-"%ld"
  354.    Print L8$-"%s"-"%ld"
  355.    Print L9$-"%s"-"%ld"
  356.    Print L10$-"%s"-"%ld"
  357.    Print L11$-"%s"-"%ld"
  358.    Print L12$-"%s"-"%ld"
  359.    Print L13$-"%s"-"%ld"
  360.    Print L14$-"%s"-"%ld"
  361.    Print L15$-"%s"-"%ld"
  362.    Every On 
  363. End Proc
  364. Procedure _STRINGS
  365.  
  366.    LHDR$=At(17,3)+Pen$(5)+"ZModem Transfer - <Esc> to Abort"
  367.    L1$=At(10,5)+Chr$(26)+Pen$(3)+"       Protocol: "+Pen$(6)+D$+"%s"
  368.    L3$=At(10,6)+Chr$(26)+Pen$(3)+"      File Name: "+Pen$(6)+D$+"%s"
  369.    L4$=At(10,7)+Chr$(26)+Pen$(3)+"       Filesize: "+Pen$(6)+D$+"%ld"
  370.    L5$=At(10,8)+Chr$(26)+Pen$(3)+" Received bytes: "+Pen$(7)+D$+"%ld"
  371.    L6$=At(10,9)+Chr$(26)+Pen$(3)+"   Blocks Rec'd: "+Pen$(7)+D$+"%ld"
  372.   L8$=At(10,10)+Chr$(26)+Pen$(3)+" Estimated time: "+Pen$(6)+D$+"%s"
  373.   L9$=At(10,11)+Chr$(26)+Pen$(3)+"   Elapsed Time: "+Pen$(7)+D$+"%s"
  374.  L10$=At(10,12)+Chr$(26)+Pen$(3)+" Error Checking: "+Pen$(6)+D$+"%s"
  375.  L11$=At(10,13)+Chr$(26)+Pen$(3)+"     Last error: "+Pen$(6)+D$+"%s"
  376.  L12$=At(10,14)+Chr$(26)+Pen$(3)+"   Total Errors: "+Pen$(6)+D$+"%ld"
  377.  L13$=At(10,15)+Chr$(26)+Pen$(3)+"       Timeouts: "+Pen$(6)+D$+"%ld"
  378.  L14$=At(10,16)+Chr$(26)+Pen$(3)+"            Cps: "+Pen$(7)+D$+"%ld"
  379.  L15$=At(10,17)+Chr$(26)+Pen$(3)+"        Message: "+Pen$(6)+D$+"%s"
  380.  
  381.    X$= Extension_11_00C8("a",L1$,"",XCUSTOM)
  382.    X$= Extension_11_00C8("b",L3$,"",XCUSTOM)
  383.    X$= Extension_11_00C8("c",L4$,"",XCUSTOM)
  384.    X$= Extension_11_00C8("d",L15$,"",XCUSTOM)
  385.    X$= Extension_11_00C8("e",L11$,"",XCUSTOM)
  386.    X$= Extension_11_00C8("f",L12$,"",XCUSTOM)
  387.    X$= Extension_11_00C8("g",L13$,"",XCUSTOM)
  388.    X$= Extension_11_00C8("h",L6$,"",XCUSTOM)
  389.    X$= Extension_11_00C8("i",L5$,"",XCUSTOM)
  390.    X$= Extension_11_00C8("j",L8$,"",XCUSTOM)
  391.    X$= Extension_11_00C8("k",L9$,"",XCUSTOM)
  392.    X$= Extension_11_00C8("l",L10$,"",XCUSTOM)
  393.    X$= Extension_11_00C8("m",L14$,"",XCUSTOM)
  394.  
  395. ' Set up string for phonebook requestor... 
  396.  
  397.    A$=A$+"INk      1,0,2;"
  398.    A$=A$+"SetVar   1,'TermPlay PhoneBook';"
  399.    A$=A$+"SetVar   2,'Path:';"
  400.  
  401.    A$=A$+"SIze     500,200;"
  402.    A$=A$+"BAse     SW SX-2/,SH SY-2/;"
  403.    A$=A$+"SAve     2;"
  404.  
  405.    A$=A$+"BOx      0,0,1,SX,SY;"
  406.    A$=A$+"POutline 1VACX,10,1VA,0,14;"
  407.  
  408.    A$=A$+"PRint    34,30,2VA,9;"
  409.    A$=A$+"LIne     XB16+,YA4-,16,480;"
  410.    A$=A$+"EDit     1,XA8+,YA4+,46,44,3VA,5,11;"
  411.  
  412.    A$=A$+"VLine    460,48,19,176;"
  413.    A$=A$+"VSlider  2,460,52,8,120,0,8,65,1;[ZC 3,ZP;]"
  414.  
  415.    A$=A$+"AList    3,96,48,42,16,0VA,0,0,0,8;[ZC 4,0VA ZP AR;SV 4,ZP;]"
  416.    A$=A$+"LIne     96,180,65,476;"
  417.    A$=A$+"EDit     4,112,184,42,42,0,0,13;"
  418.  
  419.    A$=A$+"BUtton   5,SX496-,SY152-,56,14,0,0,1;[UNpack 0,0,BP47+;PRint 4,4,' Dial ',12;][]"
  420.    A$=A$+"BUtton   6,SX496-,SY136-,56,14,0,0,1;[UNpack 0,0,BP47+;PRint 4,4,' Sort ',12;][]"
  421.    A$=A$+"BUtton   7,SX496-,SY120-,56,14,0,0,1;[UNpack 0,0,BP47+;PRint 4,4,'Delete',12;][]"
  422.    A$=A$+"BUtton   8,SX496-,SY104-,56,14,0,0,1;[UNpack 0,0,BP47+;PRint 4,4,' Edit ',12;][]"
  423.    A$=A$+"BUtton   9,SX496-,SY24-,56,14,0,0,1;[UNpack 0,0,BP47+;PRint 4,4,' QUIT ',12;][]"
  424.    A$=A$+"BUtton   10,SX496-,SY88-,56,14,0,0,1;[UNpack 0,0,BP47+;PRint 4,4,' Save ',12;][]"
  425.    A$=A$+"BUtton   11,SX496-,SY72-,56,14,0,0,1;[UNpack 0,0,BP47+;PRint 4,4,' Load ',12;][]"
  426.  
  427.    A$=A$+"EXit;"
  428.  
  429. ' string for the config screen...
  430.  
  431.    B$=B$+"SetVar   1,'TermPlay Configuration Screen';"
  432.    B$=B$+"SetVar   2,'        Modem Speed:';"
  433.    B$=B$+"SetVar   3,' Text Mode(Y,N,?,C):';"
  434.    B$=B$+"SetVar   4,'    OverWrite Files:';"
  435.    B$=B$+"SetVar   5,'     Buffer Size(K):';"
  436.    B$=B$+"SetVar   6,'         Max Errors:';"
  437.    B$=B$+"SetVar   7,'      Auto Activate:';"
  438.    B$=B$+"SetVar   8,'Delete after Upload:';"
  439.    B$=B$+"SetVar   9,' Keep Partial Files:';"
  440.   B$=B$+"SetVar   10,'     Send Full Path:';"
  441.   B$=B$+"SetVar   11,'  Receive Full Path:';"
  442.   B$=B$+"SetVar   12,'      DownLoad Path:';"
  443.  
  444.    B$=B$+"SIze     640,200;"
  445.    B$=B$+"BAse     0,0;"
  446.    B$=B$+"SAve     2;"
  447.    B$=B$+"BOx      0,0,1,SX,SY;"
  448.    B$=B$+"POutline 320,60,1VA,0,14;"
  449.  
  450.    B$=B$+"PRint    4,8,2VA,9;"
  451.    B$=B$+"LIne     XB7+,YA4-,16,272;"
  452.    B$=B$+"EDit     13,XA8+,YA4+,8,7,13VA,5,11;"
  453.  
  454.    B$=B$+"PRint    4,25,3VA,9;"
  455.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  456.    B$=B$+"EDit     14,XA8+,YA4+,4,3,14VA,5,11;"
  457.  
  458.    B$=B$+"PRint    4,42,4VA,9;"
  459.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  460.    B$=B$+"EDit     15,XA8+,YA4+,4,3,15VA,5,11;"
  461.  
  462.    B$=B$+"PRint    4,59,5VA,9;"
  463.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  464.    B$=B$+"EDit     16,XA8+,YA4+,4,3,16VA,5,11;"
  465.  
  466.    B$=B$+"PRint    4,76,6VA,9;"
  467.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  468.    B$=B$+"EDit     17,XA8+,YA4+,4,3,17VA,5,11;"
  469.  
  470.    B$=B$+"PRint    4,93,7VA,9;"
  471.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  472.    B$=B$+"EDit     18,XA8+,YA4+,4,3,18VA,5,11;"
  473.  
  474.    B$=B$+"PRint    4,110,8VA,9;"
  475.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  476.    B$=B$+"EDit     19,XA8+,YA4+,4,3,19VA,5,11;"
  477.  
  478.    B$=B$+"PRint    4,127,9VA,9;"
  479.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  480.    B$=B$+"EDit     20,XA8+,YA4+,4,3,20VA,5,11;"
  481.  
  482.    B$=B$+"PRint    4,144,10VA,9;"
  483.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  484.    B$=B$+"EDit     21,XA8+,YA4+,4,3,21VA,5,11;"
  485.  
  486.    B$=B$+"PRint    4,161,11VA,9;"
  487.    B$=B$+"LIne     XB7+,YA4-,16,240;"
  488.    B$=B$+"EDit     22,XA8+,YA4+,4,3,22VA,5,11;"
  489.  
  490.    B$=B$+"PRint    4,178,12VA,9;"
  491.    B$=B$+"LIne     XB7+,YA4-,16,480;"
  492.    B$=B$+"EDit     23,XA8+,YA4+,36,35,23VA,5,11;"
  493.  
  494.    B$=B$+"BUtton   24,SX240-,SY80-,76,18,0,0,1;[UNpack 0,0,BP47+;PR 4,4,'Cancel',12;][BQ;]"
  495.    B$=B$+"KY       13,0;"
  496.  
  497.    B$=B$+"BUtton   25,SX140-,SY110-,56,14,0,0,1;[UNpack 0,0,BP47+;PR 4,4,'Load ',12;][BQ;]"
  498.    B$=B$+"KY       13,0;"
  499.  
  500.    B$=B$+"BUtton   26,SX340-,SY110-,56,14,0,0,1;[UNpack 0,0,BP47+;PR 4,4,'Save ',12;][BQ;]"
  501.    B$=B$+"KY       13,0;"
  502.  
  503.    B$=B$+"BUtton   27,SX240-,SY110-,56,14,0,0,1;[UNpack 0,0,BP47+;PR 4,4,' Use ',12;][BQ;]"
  504.    B$=B$+"KY       13,0;"
  505.    B$=B$+"RUn      0,3;"
  506.  
  507.    B$=B$+"EXit;"
  508.  
  509. ' string for the editing requestor...
  510.  
  511.    C$=C$+"SetVar   1,'Edit a Record';"
  512.    C$=C$+"SetVar   2,'   Enter name:';"
  513.    C$=C$+"SetVar   3,'Enter Phone #:';"
  514.  
  515.    C$=C$+"SIze     420,100;"
  516.    C$=C$+"BAse     SW SX-2/,SH SY-2/;"
  517.    C$=C$+"SAve     2;"
  518.  
  519.    C$=C$+"BOx      0,0,1,SX,SY;"
  520.    C$=C$+"POutline 1VACX,10,1VA,0,14;"
  521.  
  522.    C$=C$+"PRint    24,32,2VA,9;"
  523.    C$=C$+"LIne     XB7+,YA4-,16,352;"
  524.    C$=C$+"EDit     1,XA8+,YA4+,22,22,4VA,5,11;"
  525.  
  526.    C$=C$+"PRint    24,52,3VA,9;"
  527.    C$=C$+"LIne     XB7+,YA4-,16,352;"
  528.    C$=C$+"EDit     2,XA8+,YA4+,22,22,5VA,5,11;"
  529.  
  530.    C$=C$+"BUtton   0,SX230-,SY20-,56,14,0,0,1;[UNpack 0,0,BP47+;PR 4,4,'  OK',12;][BQ;]"
  531.  
  532.    C$=C$+"KY       13,0;"
  533.    C$=C$+"RUn      0,3;"
  534.    C$=C$+"EXit;"
  535.  
  536. End Proc
  537. Procedure _DOWNLOAD
  538.  
  539.    Every Off 
  540.    STA$= Extension_11_00C8("","","xprzmodem.library",XOPEN) : Rem open 
  541.  
  542.    If STA$<>"OK"
  543.       Print "Failed to open xprzmodem.library!"
  544.       Shoot : Wait 60
  545.        Extension_11_0024 
  546.       End 
  547.    End If 
  548.  
  549.    If Upper$(Left$(ST$(3),1))="Y" : TMX$="TY"
  550.       Else If Upper$(Left$(ST$(3),1))="N" : TMX$="TN"
  551.       Else If Upper$(Left$(ST$(3),1))="?" : TMX$="T?"
  552.       Else TMX$="TC"
  553.    End If 
  554.  
  555.    If Upper$(Left$(ST$(4),1))="Y" : OWX$="OY"
  556.       Else If Upper$(Left$(ST$(4),1))="S" : OWX$="OS"
  557.       Else If Upper$(Left$(ST$(4),1))="R" : OWX$="OR"
  558.       Else OWX$="ON"
  559.    End If 
  560.  
  561.    BFX$="B"+ST$(5)
  562.  
  563.    ERX$="E"+ST$(6)
  564.  
  565.    If Upper$(Left$(ST$(7),1))="Y"
  566.       AAX$="AY"
  567.    Else 
  568.       AAX$="AN"
  569.    End If 
  570.  
  571.    If Upper$(Left$(ST$(8),1))="Y"
  572.       DAX$="DY"
  573.    Else 
  574.       DAX$="DN"
  575.    End If 
  576.  
  577.    If Upper$(Left$(ST$(9),1))="Y"
  578.       KPX$="KY"
  579.    Else 
  580.       KPX$="KN"
  581.    End If 
  582.  
  583.    If Upper$(Left$(ST$(10),1))="Y"
  584.       SFX$="SY"
  585.    Else 
  586.       SFX$="SN"
  587.    End If 
  588.  
  589.    If Upper$(Left$(ST$(11),1))="Y"
  590.       RFX$="RY"
  591.    Else 
  592.       RFX$="RN"
  593.    End If 
  594.  
  595.    DPX$="P"+ST$(12)
  596.  
  597.    SET$="Z1"+","+TMX$+","+OWX$+","+BFX$+","+ERX$+","+AAX$+","+DAX$+","+KPX$+","+SFX$+","+RFX$+","+DPX$
  598.    SET$=SET$+Chr$(0)
  599.  
  600.    STA$= Extension_11_00C8("",SET$,"",XSETUP) : Rem SETUP
  601.  
  602.    STATUS=Val(Mid$(STA$,1,1)) : Rem All OK?
  603.    FREQDL=Val(Mid$(STA$,2,1)) : Rem Need Freq for DL?
  604.    FREQUL=Val(Mid$(STA$,3,1)) : Rem Need Freq for UL?
  605.  
  606.    If STATUS=0
  607.       Print "Failed to setup parameters for library..."
  608.       DUM$= Extension_11_00C8("","","",XCLOSE)
  609.       Wait Key : Pop Proc
  610.    End If 
  611.    Clw 
  612.    L$=At(10,13)+Chr$(26)+Pen$(3)+"     Last error: "+Pen$(6)+D$+"<none>"
  613.    Print L$
  614.    STA$= Extension_11_00C8("","","",XREC)
  615.    Bell : Print : Cls 0
  616.    STA$= Extension_11_00C8("","","",XCLOSE)
  617.    Every 60 Proc DA_TIME : Every On 
  618.  
  619. End Proc
  620. Procedure _UPLOAD
  621.  
  622.    Every Off 
  623.    STA$= Extension_11_00C8("","","xprzmodem.library",XOPEN) : Rem open 
  624.  
  625.    If STA$<>"OK"
  626.       Print "Failed to open xprzmodem.library!"
  627.       Shoot : Wait 60
  628.        Extension_11_0024 
  629.       End 
  630.    End If 
  631.  
  632.    If Upper$(Left$(ST$(3),1))="Y" : TMX$="TY"
  633.       Else If Upper$(Left$(ST$(3),1))="N" : TMX$="TN"
  634.       Else If Upper$(Left$(ST$(3),1))="?" : TMX$="T?"
  635.       Else TMX$="TC"
  636.    End If 
  637.  
  638.    If Upper$(Left$(ST$(4),1))="Y" : OWX$="OY"
  639.       Else If Upper$(Left$(ST$(4),1))="S" : OWX$="OS"
  640.       Else If Upper$(Left$(ST$(4),1))="R" : OWX$="OR"
  641.       Else OWX$="ON"
  642.    End If 
  643.  
  644.    BFX$="B"+ST$(5)
  645.  
  646.    ERX$="E"+ST$(6)
  647.  
  648.    If Upper$(Left$(ST$(7),1))="Y"
  649.       AAX$="AY"
  650.    Else 
  651.       AAX$="AN"
  652.    End If 
  653.  
  654.    If Upper$(Left$(ST$(8),1))="Y"
  655.       DAX$="DY"
  656.    Else 
  657.       DAX$="DN"
  658.    End If 
  659.  
  660.    If Upper$(Left$(ST$(9),1))="Y"
  661.       KPX$="KY"
  662.    Else 
  663.       KPX$="KN"
  664.    End If 
  665.  
  666.    If Upper$(Left$(ST$(10),1))="Y"
  667.       SFX$="SY"
  668.    Else 
  669.       SFX$="SN"
  670.    End If 
  671.  
  672.    If Upper$(Left$(ST$(11),1))="Y"
  673.       RFX$="RY"
  674.    Else 
  675.       RFX$="RN"
  676.    End If 
  677.  
  678.    DPX$="P"+ST$(12)
  679.  
  680.    SET$="Z1"+","+TMX$+","+OWX$+","+BFX$+","+ERX$+","+AAX$+","+DAX$+","+KPX$+","+SFX$+","+RFX$+","+DPX$
  681.    SET$=SET$+Chr$(0)
  682.  
  683.    STA$= Extension_11_00C8("",SET$,"",XSETUP) : Rem SETUP
  684.  
  685.    STATUS=Val(Mid$(STA$,1,1)) : Rem All OK?
  686.  
  687.    If STATUS=0
  688.       Print "Failed to setup parameters for library..."
  689.       DUM$= Extension_11_00C8("","","",XCLOSE)
  690.       Pop Proc
  691.    End If 
  692.  
  693.    Clw 
  694.    _FILE$=Fsel$("","","Choose a File to UpLoad")
  695.    If _FILE$="" Then Goto DA_END
  696.    _FILE$=_FILE$+Chr$(0)
  697.    LST$=At(10,13)+Chr$(26)+Pen$(3)+"     Last error: "+Pen$(6)+D$+"<none>"
  698.    TX$= Extension_11_00C8(_FILE$,"","",XSEND)
  699. DA_END:
  700.    Bell : Print 
  701.    TX$= Extension_11_00C8("","","",XCLOSE)
  702.    Every 60 Proc DA_TIME : Every On 
  703.  
  704. End Proc